package ro.asterix.factory_pattern;

import ro.asterix.business.OaspeteManagerImpl;
import ro.asterix.interfaces.OaspeteManager;

public class OaspeteManagerFactory {

	/** Factory Pattern se refera la un model decizional pe baza argumentelor
	 * Exemplul cel mai simplu:
	 * 			* Factory() 	produce instante diferite ale unei clase X
	 * 							depinzand de valoarea primita ca argument;
	 * 						DECIDE care din subclasele lui X [XY, XZ] sunt 
	 * 							intoarse in functie de argumentul primit.
	 * ......................................................................+
	 * 
	 * Exemplu de FactoryMethod:
	 * 							NU mai este o singura clasa care decide;
	 * 							Superclasa deleaga catre subclasa 
	 * 											responsabilitatea deciziei;
	 * 							NU mai este un punct unde se ia decizia
	 * 		Un astfel de program defineste o clasa ABSTRACTA care creaza Obiecte
	 * 			dar deleaga subclaselor responsabilitatea de a crea obiectul cerut 
	 */
	
	public static OaspeteManager getOaspeteManager(){
		// TODO Aici trebuie sa vad cum leg IMPLEMENTAREA de Factory
		OaspeteManagerImpl omi = new OaspeteManagerImpl();		
		
		return omi; /* Trebuie returnat un Obiect de tip Referinta la OaspeteManager;*/
	}
	
}
